import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { FormsModule } from '@angular/forms';
import { OverlayService } from '../core/overlay/overlay.service';
import { IconModule } from '../icon/icon.module';
import { EmptyModule } from '../empty/empty.module';
import { CheckboxModule } from '../checkbox/checkbox.module';
import { OverflowModule } from '../overflow/overflow.module';
import { SearchModule } from '../search/search.module'; // NEED_DO
import { InternalSelectTriggerModule } from '../core/api';
import { CascaderComponent } from './cascader.component';
import { CascaderOptionComponent } from './cascader-option.component';
import { CascaderHeaderComponent } from './cascader-header.component';
import { CascaderFooterComponent } from './cascader-footer.component';
import { CascaderTriggerComponent } from './cascader-trigger.component';

@NgModule({
  declarations: [
    CascaderComponent,
    CascaderOptionComponent,
    CascaderHeaderComponent,
    CascaderFooterComponent,
    CascaderTriggerComponent,
  ],
  imports: [
    CommonModule,
    FormsModule,
    IconModule,
    EmptyModule,
    CheckboxModule,
    OverflowModule,
    SearchModule,
    InternalSelectTriggerModule,
  ],
  exports: [
    CascaderComponent,
    CascaderOptionComponent,
    CascaderHeaderComponent,
    CascaderFooterComponent,
    CascaderTriggerComponent,
  ],
  providers: [OverlayService],
})
export class CascaderModule {}
